ARD2  1.00 for Rev B. Hardware
Airbag Reference Demonstrator using MPC5604P
freemaster_MPC56xx.h File Reference

FreeMASTER Driver hardware dependent stuff. More...

Go to the source code of this file.

Data Structures

struct  FMSTR_FCAN_TCTX
struct  FMSTR_FCAN_RCTX

Defines

#define FMSTR_INLINE   static
#define FMSTR_USE_EX_CMDS   1
#define FMSTR_USE_NOEX_CMDS   0
#define FMSTR_PROT_VER   3
#define FMSTR_CFG_FLAGS   FMSTR_CFGFLAG_BIGENDIAN
#define FMSTR_CFG_BUS_WIDTH   1
#define FMSTR_GLOB_VERSION_MAJOR   2
#define FMSTR_GLOB_VERSION_MINOR   0
#define FMSTR_IDT_STRING   "MPC56xx FreeMASTER Drv."
#define FMSTR_TSA_FLAGS   0
#define FMSTR_SetExAddr(bNextAddrIsEx)
#define FMSTR_ValueFromBuffer8(pDest, pSrc)   ( (*((FMSTR_U8*)(pDest)) = *(FMSTR_U8*)(pSrc)), (((FMSTR_BPTR)(pSrc))+1) )
#define FMSTR_ValueFromBuffer16(pDest, pSrc)   ( (*((FMSTR_U16*)(pDest)) = *(FMSTR_U16*)(pSrc)), (((FMSTR_BPTR)(pSrc))+2) )
#define FMSTR_ValueFromBuffer32(pDest, pSrc)   ( (*((FMSTR_U32*)(pDest)) = *(FMSTR_U32*)(pSrc)), (((FMSTR_BPTR)(pSrc))+4) )
#define FMSTR_ValueToBuffer8(pDest, src)   ( (*((FMSTR_U8*)(pDest)) = (FMSTR_U8)(src)), (((FMSTR_BPTR)(pDest))+1) )
#define FMSTR_ValueToBuffer16(pDest, src)   ( (*((FMSTR_U16*)(pDest)) = (FMSTR_U16)(src)), (((FMSTR_BPTR)(pDest))+2) )
#define FMSTR_ValueToBuffer32(pDest, src)   ( (*((FMSTR_U32*)(pDest)) = (FMSTR_U32)(src)), (((FMSTR_BPTR)(pDest))+4) )
#define FMSTR_SkipInBuffer(pDest, nSize)   ( ((FMSTR_BPTR)(pDest)) + (nSize) )
#define FMSTR_ConstToBuffer8   FMSTR_ValueToBuffer8
#define FMSTR_ConstToBuffer16   FMSTR_ValueToBuffer16
#define FMSTR_AddressFromBuffer(pDest, pSrc)   FMSTR_ValueFromBuffer32(pDest, pSrc)
#define FMSTR_AddressToBuffer(pDest, nAddr)   FMSTR_ValueToBuffer32(pDest, nAddr)
#define FMSTR_GetS8(addr)   ( *(FMSTR_S8*)(addr) )
#define FMSTR_GetU8(addr)   ( *(FMSTR_U8*)(addr) )
#define FMSTR_GetS16(addr)   ( *(FMSTR_S16*)(addr) )
#define FMSTR_GetU16(addr)   ( *(FMSTR_U16*)(addr) )
#define FMSTR_GetS32(addr)   ( *(FMSTR_S32*)(addr) )
#define FMSTR_GetU32(addr)   ( *(FMSTR_U32*)(addr) )
#define FMSTR_PTR2ADDR(tmpAddr, ptr)   ( tmpAddr = (FMSTR_ADDR) (FMSTR_U8*) ptr )
#define FMSTR_ARR2ADDR   FMSTR_PTR2ADDR
#define FMSTR_CANHW_FLEXCAN   1
#define FMSTR_SETBIT32(base, offset, bit)   ((*(volatile FMSTR_U32*)(((FMSTR_U32)(base))+(offset))) |= bit)
#define FMSTR_CLRBIT32(base, offset, bit)   ((*(volatile FMSTR_U32*)(((FMSTR_U32)(base))+(offset))) &= ~(bit))
#define FMSTR_SETREG32(base, offset, value)   ((*(volatile FMSTR_U32*)(((FMSTR_U32)(base))+(offset))) = value)
#define FMSTR_GETREG32(base, offset)   (*(volatile FMSTR_U32*)(((FMSTR_U32)(base))+(offset)))
#define FMSTR_TSTBIT32(base, offset, bit)   (*(volatile FMSTR_U32*)(((FMSTR_U32)(base))+(offset)) & (bit))
#define FMSTR_SETBIT16(base, offset, bit)   ((*(volatile FMSTR_U16*)(((FMSTR_U32)(base))+(offset))) |= bit)
#define FMSTR_CLRBIT16(base, offset, bit)   ((*(volatile FMSTR_U16*)(((FMSTR_U32)(base))+(offset))) &= ~(bit))
#define FMSTR_SETREG16(base, offset, value)   ((*(volatile FMSTR_U16*)(((FMSTR_U32)(base))+(offset))) = value)
#define FMSTR_GETREG16(base, offset)   (*(volatile FMSTR_U16*)(((FMSTR_U32)(base))+(offset)))
#define FMSTR_SETREG8(base, offset, value)   ((*(volatile FMSTR_U8*)(((FMSTR_U32)(base))+(offset))) = value)
#define FMSTR_GETREG8(base, offset)   (*(volatile FMSTR_U8*)(((FMSTR_U32)(base))+(offset)))
#define FMSTR_UARTCR_OFFSET   0x12
#define FMSTR_LINIER_OFFSET   0x6
#define FMSTR_LINCR1_OFFSET   0x2
#define FMSTR_UARTSR_OFFSET   0x16
#define FMSTR_BDRL_DATA0_OFFSET   0x3B
#define FMSTR_BDRM_DATA4_OFFSET   0x3F
#define FMSTR_UARTCR_TXEN   0x0010
#define FMSTR_UARTCR_RXEN   0x0020
#define FMSTR_LINIER_DRIE   0x0004
#define FMSTR_LINIER_DTIE   0x0002
#define FMSTR_SCISR_RDRF   0x0004
#define FMSTR_SCISR_TDRE   0x0002
#define FMSTR_SCI_TE()   FMSTR_SETBIT16(FMSTR_SCI_BASE, FMSTR_UARTCR_OFFSET, FMSTR_UARTCR_TXEN)
#define FMSTR_SCI_TD()   FMSTR_CLRBIT16(FMSTR_SCI_BASE, FMSTR_UARTCR_OFFSET, FMSTR_UARTCR_TXEN)
#define FMSTR_SCI_RE()   FMSTR_SETBIT16(FMSTR_SCI_BASE, FMSTR_UARTCR_OFFSET, FMSTR_UARTCR_RXEN)
#define FMSTR_SCI_RD()   FMSTR_CLRBIT16(FMSTR_SCI_BASE, FMSTR_UARTCR_OFFSET, FMSTR_UARTCR_RXEN)
#define FMSTR_SCI_TE_RE()   FMSTR_SETBIT16(FMSTR_SCI_BASE, FMSTR_UARTCR_OFFSET, FMSTR_UARTCR_RXEN | FMSTR_UARTCR_TXEN)
#define FMSTR_SCI_ETXI()   FMSTR_SETBIT16(FMSTR_SCI_BASE, FMSTR_LINIER_OFFSET, FMSTR_LINIER_DTIE)
#define FMSTR_SCI_DTXI()   FMSTR_CLRBIT16(FMSTR_SCI_BASE, FMSTR_LINIER_OFFSET, FMSTR_LINIER_DTIE)
#define FMSTR_SCI_ERXI()   FMSTR_SETBIT16(FMSTR_SCI_BASE, FMSTR_LINIER_OFFSET, FMSTR_LINIER_DRIE)
#define FMSTR_SCI_DRXI()   FMSTR_CLRBIT16(FMSTR_SCI_BASE, FMSTR_LINIER_OFFSET, FMSTR_LINIER_DRIE)
#define FMSTR_SCI_PUTCHAR(ch)   FMSTR_SETREG8(FMSTR_SCI_BASE, FMSTR_BDRL_DATA0_OFFSET, (ch))
#define FMSTR_SCI_GETCHAR()   ((FMSTR_U8) FMSTR_GETREG8(FMSTR_SCI_BASE, FMSTR_BDRM_DATA4_OFFSET))
#define FMSTR_SCI_GETSR()   FMSTR_GETREG16(FMSTR_SCI_BASE, FMSTR_UARTSR_OFFSET)
#define FMSTR_FCANMB_CODE_MASK   0x0F
#define FMSTR_FCANMB_CRXVOID   0x00
#define FMSTR_FCANMB_CRXEMPTY   0x04
#define FMSTR_FCANMB_CTXTRANS_ONCE   0x0C
#define FMSTR_FCANMB_CTXREADY   0x08
#define FMSTR_FCANTMR_OFFSET   0x08
#define FMSTR_FCANIER2_OFFSET   0x24
#define FMSTR_FCANIER1_OFFSET   0x28
#define FMSTR_FCANIFR2_OFFSET   0x2C
#define FMSTR_FCANIFR1_OFFSET   0x30
#define FMSTR_FCANRXFG_OFFSET   (0x80 + ((FMSTR_FLEXCAN_RXMB) * 0x10))
#define FMSTR_FCANTXFG_OFFSET   (0x80 + ((FMSTR_FLEXCAN_TXMB) * 0x10))
#define FMSTR_FCMBCSR   0x00
#define FMSTR_FCMBIDR0   0x04
#define FMSTR_FCMBIDR1   0x05
#define FMSTR_FCMBIDR2   0x06
#define FMSTR_FCMBIDR3   0x07
#define FMSTR_FCMBDSR0   0x08
#define FMSTR_FCMBDSR1   0x09
#define FMSTR_FCMBDSR2   0x0A
#define FMSTR_FCMBDSR3   0x0B
#define FMSTR_FCMBDSR4   0x0C
#define FMSTR_FCMBDSR5   0x0D
#define FMSTR_FCMBDSR6   0x0E
#define FMSTR_FCMBDSR7   0x0F
#define FMSTR_FCANCTRL_IDE   0x20
#define FMSTR_FCANCTRL_STD_RTR   0x10
#define FMSTR_FCANCTRL_EXT_RTR   0x10
#define FMSTR_FCANCTRL_EXT_SRR   0x40
#define FMSTR_FCANID0_EXT_FLG   0x80
#define FMSTR_FCAN_ETXI()
#define FMSTR_FCAN_DTXI()
#define FMSTR_FCAN_ERXI()
#define FMSTR_FCAN_DRXI()
#define FMSTR_FCAN_TEST_RXFLG()
#define FMSTR_FCAN_CLEAR_RXFLG()
#define FMSTR_FCAN_TEST_TXFLG()
#define FMSTR_FCAN_GET_MBSTATUS()   (FMSTR_GETREG8(FMSTR_CAN_BASE, FMSTR_FCANTXFG_OFFSET+FMSTR_FCMBCSR)&FMSTR_FCANMB_CODE_MASK)
#define FMSTR_FCAN_MAKEIDR0(id)   ((FMSTR_U8)( ((id)&FMSTR_CAN_EXTID) ? ((((id)>>24)&0x1f) | FMSTR_FCANID0_EXT_FLG) : (((id)>>6)&0x1f) ))
#define FMSTR_FCAN_MAKEIDR1(id)   ((FMSTR_U8)( ((id)&FMSTR_CAN_EXTID) ? ((id)>>16) : ((id)<<2) ))
#define FMSTR_FCAN_MAKEIDR2(id)   ((FMSTR_U8)( ((id)&FMSTR_CAN_EXTID) ? ((id)>>8) : 0 ))
#define FMSTR_FCAN_MAKEIDR3(id)   ((FMSTR_U8)( ((id)&FMSTR_CAN_EXTID) ? (id) : 0 ))
#define FMSTR_FCAN_RINIT(idr0, idr1, idr2, idr3)
#define FMSTR_FCAN_TINIT(idr0, idr1, idr2, idr3)
#define FMSTR_FCAN_RCFG()   FMSTR_SETREG8(FMSTR_CAN_BASE, FMSTR_FCANRXFG_OFFSET + FMSTR_FCMBCSR, FMSTR_FCANMB_CRXEMPTY)
#define FMSTR_FCAN_TLEN(pctx, len)
#define FMSTR_FCAN_PUTBYTE(pctx, dataByte)
#define FMSTR_FCAN_TCFG(pctx)
#define FMSTR_FCAN_TID(pctx, idr0, idr1, idr2, idr3)
#define FMSTR_FCAN_TPRI(pctx, txPri)
#define FMSTR_FCAN_TX(pctx)   FMSTR_SETREG8(FMSTR_CAN_BASE, FMSTR_FCANTXFG_OFFSET + FMSTR_FCMBCSR, (FMSTR_FCANMB_CTXTRANS_ONCE & 0x0f) )
#define FMSTR_FCAN_RX(pctx)   (pctx)->nDataIx = 0;
#define FMSTR_FCAN_TEST_RIDR(pctx, idr0, idr1, idr2, idr3)
#define FMSTR_FCAN_RLEN(pctx)   (FMSTR_GETREG8(FMSTR_CAN_BASE, FMSTR_FCANRXFG_OFFSET+FMSTR_FCMBCSR+1) & 0x0f)
#define FMSTR_FCAN_GETBYTE(pctx)
#define FMSTR_FCAN_RFINISH(pctx)   FMSTR_SETBIT16(FMSTR_CAN_BASE, FMSTR_FCANTMR_OFFSET, 0)

Typedefs

typedef unsigned char FMSTR_U8
typedef unsigned short FMSTR_U16
typedef unsigned long FMSTR_U32
typedef signed char FMSTR_S8
typedef signed short FMSTR_S16
typedef signed long FMSTR_S32
typedef unsigned char FMSTR_FLAGS
typedef unsigned char FMSTR_SIZE8
typedef signed short FMSTR_INDEX
typedef unsigned char FMSTR_BCHR
typedef unsigned char * FMSTR_BPTR
typedef unsigned long FMSTR_SCISR

Functions

void FMSTR_CopyMemory (FMSTR_ADDR nDestAddr, FMSTR_ADDR nSrcAddr, FMSTR_SIZE8 nSize)
 The "memcpy" used internally in FreeMASTER driver.
FMSTR_BPTR FMSTR_CopyToBuffer (FMSTR_BPTR pDestBuff, FMSTR_ADDR nSrcAddr, FMSTR_SIZE8 nSize)
 Write-into the communication buffer memory.
FMSTR_BPTR FMSTR_CopyFromBuffer (FMSTR_ADDR nDestAddr, FMSTR_BPTR pSrcBuff, FMSTR_SIZE8 nSize)
 Read-out memory from communication buffer.
void FMSTR_CopyFromBufferWithMask (FMSTR_ADDR nDestAddr, FMSTR_BPTR pSrcBuff, FMSTR_SIZE8 nSize)
 Read-out memory from communication buffer, perform AND-masking.
FMSTR_INLINE FMSTR_SCISR FMSTR_SCI_RDCLRSR (void)

Detailed Description

FreeMASTER Driver hardware dependent stuff.

Version:
1.0.12.0
Date:
Aug-30-2011

Define Documentation

#define FMSTR_FCAN_CLEAR_RXFLG ( )
Value:
( ((FMSTR_FLEXCAN_RXMB)&0x20) ? \
                            FMSTR_SETREG32(FMSTR_CAN_BASE, FMSTR_FCANIFR2_OFFSET, (1<<((FMSTR_FLEXCAN_RXMB)-32))):\
                            FMSTR_SETREG32(FMSTR_CAN_BASE, FMSTR_FCANIFR1_OFFSET, (1<<(FMSTR_FLEXCAN_RXMB))) )
#define FMSTR_FCAN_DRXI ( )
Value:
( ((FMSTR_FLEXCAN_RXMB)&0x20) ? \
                            FMSTR_CLRBIT32(FMSTR_CAN_BASE, FMSTR_FCANIER2_OFFSET, (1<<((FMSTR_FLEXCAN_RXMB)-32))):\
                            FMSTR_CLRBIT32(FMSTR_CAN_BASE, FMSTR_FCANIER1_OFFSET, (1<<(FMSTR_FLEXCAN_RXMB))) )
#define FMSTR_FCAN_DTXI ( )
Value:
( ((FMSTR_FLEXCAN_TXMB)&0x20) ? \
                            FMSTR_CLRBIT32(FMSTR_CAN_BASE, FMSTR_FCANIER2_OFFSET, (1<<((FMSTR_FLEXCAN_TXMB)-32))):\
                            FMSTR_CLRBIT32(FMSTR_CAN_BASE, FMSTR_FCANIER1_OFFSET, (1<<(FMSTR_FLEXCAN_TXMB))) )
#define FMSTR_FCAN_ERXI ( )
Value:
( ((FMSTR_FLEXCAN_RXMB)&0x20) ? \
                            FMSTR_SETBIT32(FMSTR_CAN_BASE, FMSTR_FCANIER2_OFFSET, (1<<((FMSTR_FLEXCAN_RXMB)-32))):\
                            FMSTR_SETBIT32(FMSTR_CAN_BASE, FMSTR_FCANIER1_OFFSET, (1<<(FMSTR_FLEXCAN_RXMB))) )
#define FMSTR_FCAN_ETXI ( )
Value:
( ((FMSTR_FLEXCAN_TXMB)&0x20) ? \
                            FMSTR_SETBIT32(FMSTR_CAN_BASE, FMSTR_FCANIER2_OFFSET, (1<<((FMSTR_FLEXCAN_TXMB)-32))):\
                            FMSTR_SETBIT32(FMSTR_CAN_BASE, FMSTR_FCANIER1_OFFSET, (1<<(FMSTR_FLEXCAN_TXMB))) )
#define FMSTR_FCAN_GETBYTE (   pctx)
Value:
((FMSTR_U8) (FMSTR_GETREG8(FMSTR_CAN_BASE, (FMSTR_FCANRXFG_OFFSET + FMSTR_FCMBDSR0) + ((pctx)->nDataIx) ))); \
        (pctx)->nDataIx++
#define FMSTR_FCAN_PUTBYTE (   pctx,
  dataByte 
)
Value:
FMSTR_MACROCODE_BEGIN() \
        FMSTR_SETREG8(FMSTR_CAN_BASE, (FMSTR_FCANTXFG_OFFSET + FMSTR_FCMBDSR0) + ((pctx)->nDataIx), (dataByte) ); \
        (pctx)->nDataIx++; \
    FMSTR_MACROCODE_END()
#define FMSTR_FCAN_RINIT (   idr0,
  idr1,
  idr2,
  idr3 
)
Value:
FMSTR_MACROCODE_BEGIN() \
        (((idr0)&FMSTR_FCANID0_EXT_FLG) ? \
        (FMSTR_SETREG16(FMSTR_CAN_BASE, FMSTR_FCANRXFG_OFFSET + FMSTR_FCMBCSR, (FMSTR_FCANMB_CRXVOID<<8 | FMSTR_FCANCTRL_IDE | FMSTR_FCANCTRL_EXT_SRR))) : \
        (FMSTR_SETREG16(FMSTR_CAN_BASE, FMSTR_FCANRXFG_OFFSET + FMSTR_FCMBCSR, (FMSTR_FCANMB_CRXVOID<<8 |  FMSTR_FCANCTRL_EXT_SRR))));\
        FMSTR_SETREG32(FMSTR_CAN_BASE, FMSTR_FCANRXFG_OFFSET + FMSTR_FCMBIDR0, ((idr0)<<24) | ((idr1)<<16) | ((idr2)<<8) | (idr3) );\
    FMSTR_MACROCODE_END()
#define FMSTR_FCAN_TCFG (   pctx)
Value:
FMSTR_MACROCODE_BEGIN() \
        (pctx)->nDataIx = 0; \
    FMSTR_MACROCODE_END()
#define FMSTR_FCAN_TEST_RIDR (   pctx,
  idr0,
  idr1,
  idr2,
  idr3 
)
Value:
( (idr0 & FMSTR_FCANID0_EXT_FLG) ? \
        /* ext id compare */ \
        ( ((((idr0)<<24) | ((idr1)<<16) | ((idr2)<<8) | (idr3))&0x1f000000)==((FMSTR_GETREG32(FMSTR_CAN_BASE, FMSTR_FCANRXFG_OFFSET+FMSTR_FCMBIDR0))&0x1f000000) ) : \
        /* std id compare */ \
        ( (((idr0)<<8) | (idr1))==((FMSTR_GETREG16(FMSTR_CAN_BASE, FMSTR_FCANRXFG_OFFSET+FMSTR_FCMBIDR0))&0x1ffc) ) )
#define FMSTR_FCAN_TEST_RXFLG ( )
Value:
( ((FMSTR_FLEXCAN_RXMB)&0x20) ? \
                            FMSTR_TSTBIT32(FMSTR_CAN_BASE, FMSTR_FCANIFR2_OFFSET, (1<<((FMSTR_FLEXCAN_RXMB)-32))):\
                            FMSTR_TSTBIT32(FMSTR_CAN_BASE, FMSTR_FCANIFR1_OFFSET, (1<<(FMSTR_FLEXCAN_RXMB))) )
#define FMSTR_FCAN_TEST_TXFLG ( )
Value:
( ((FMSTR_FLEXCAN_TXMB)&0x20) ? \
                            FMSTR_TSTBIT32(FMSTR_CAN_BASE, FMSTR_FCANIFR2_OFFSET, (1<<((FMSTR_FLEXCAN_TXMB)-32))):\
                            FMSTR_TSTBIT32(FMSTR_CAN_BASE, FMSTR_FCANIFR1_OFFSET, (1<<(FMSTR_FLEXCAN_TXMB))) )
#define FMSTR_FCAN_TID (   pctx,
  idr0,
  idr1,
  idr2,
  idr3 
)
Value:
FMSTR_MACROCODE_BEGIN() \
        FMSTR_SETREG32(FMSTR_CAN_BASE, FMSTR_FCANTXFG_OFFSET+FMSTR_FCMBIDR0, ((idr0)<<24) | ((idr1)<<16) | ((idr2)<<8) | (idr3) ); \
    FMSTR_MACROCODE_END()
#define FMSTR_FCAN_TINIT (   idr0,
  idr1,
  idr2,
  idr3 
)
Value:
FMSTR_MACROCODE_BEGIN() \
      (((idr0)&FMSTR_FCANID0_EXT_FLG) ? \
      (FMSTR_SETREG16(FMSTR_CAN_BASE, FMSTR_FCANTXFG_OFFSET + FMSTR_FCMBCSR, (FMSTR_FCANMB_CTXREADY<<8 | FMSTR_FCANCTRL_IDE))) : \
      (FMSTR_SETREG16(FMSTR_CAN_BASE, FMSTR_FCANTXFG_OFFSET + FMSTR_FCMBCSR, (FMSTR_FCANMB_CTXREADY<<8 ))));\
    FMSTR_MACROCODE_END()
#define FMSTR_FCAN_TLEN (   pctx,
  len 
)
Value:
FMSTR_SETREG8(FMSTR_CAN_BASE, FMSTR_FCANTXFG_OFFSET+FMSTR_FCMBCSR+1, (FMSTR_U8)((len & 0x0f) | \
        (FMSTR_GETREG8(FMSTR_CAN_BASE, FMSTR_FCANTXFG_OFFSET+FMSTR_FCMBCSR+1)&(FMSTR_FCANCTRL_IDE | FMSTR_FCANCTRL_EXT_SRR | FMSTR_FCANCTRL_EXT_RTR))))

Function Documentation

FMSTR_BPTR FMSTR_CopyFromBuffer ( FMSTR_ADDR  nDestAddr,
FMSTR_BPTR  pSrcBuff,
FMSTR_SIZE8  nSize 
)

Read-out memory from communication buffer.

Parameters:
nDestAddr- destination memory address
pSrcBuff- pointer to source memory in communication buffer
nSize- buffer size (always in bytes)
Returns:
This function returns a pointer to next byte in comm. buffer
void FMSTR_CopyFromBufferWithMask ( FMSTR_ADDR  nDestAddr,
FMSTR_BPTR  pSrcBuff,
FMSTR_SIZE8  nSize 
)

Read-out memory from communication buffer, perform AND-masking.

Parameters:
nDestAddr- destination memory address
pSrcBuff- source memory in communication buffer, mask follows data
nSize- buffer size (always in bytes)
void FMSTR_CopyMemory ( FMSTR_ADDR  nDestAddr,
FMSTR_ADDR  nSrcAddr,
FMSTR_SIZE8  nSize 
)

The "memcpy" used internally in FreeMASTER driver.

Parameters:
nDestAddr- destination memory address
nSrcAddr- source memory address
nSize- memory size (always in bytes)
FMSTR_BPTR FMSTR_CopyToBuffer ( FMSTR_BPTR  pDestBuff,
FMSTR_ADDR  nSrcAddr,
FMSTR_SIZE8  nSize 
)

Write-into the communication buffer memory.

Parameters:
pDestBuff- pointer to destination memory in communication buffer
nSrcAddr- source memory address
nSize- buffer size (always in bytes)
Returns:
This function returns a pointer to next byte in comm. buffer